home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 4 / Amiga Tools 4.iso / grafix / raytracing / raylab / source / protos.h < prev    next >
Text File  |  1996-02-15  |  3KB  |  78 lines

  1. /*
  2.     name:    protos.h
  3.  
  4.     Global prototypes
  5.     -----------------
  6.  
  7. */
  8.  
  9. /* Prototypes for functions defined in raylab.c */
  10. void ScanWorld(void);
  11. void ScanOnePoint(COLOR *Color, POINT *CameraLocation, POINT *ScreenLocation, VECTOR *dx, VECTOR *dy, int ColumnFirst, int ColumnLast, int RowFirst, int RowLast, long AARec);
  12. long TraceRay(COLOR *Color, LINE *RayLine, long RecurseLevel);
  13. long TestShadowRay(LINE *RayLine, long CurrentObject);
  14. void cleanup(void);
  15.  
  16.  
  17. /* Prototypes for functions defined in (platform).c */
  18. long OpenDisplay(long DisplayType);
  19. void CloseDisplay(void);
  20. void DisplayPlot(int x, int y, unsigned char RGBColor[]);
  21.  
  22.  
  23. /* Prototypes for functions defined in intersct.c */
  24. double Intersect_Object(LINE *Line, OBJECT *Object);
  25. double Intersect_Plane(LINE *Line, PLANE *Plane);
  26. double Intersect_Sphere(LINE *Line, SPHERE *Sphere);
  27. double Intersect_Ellipsoid(LINE *Line, ELLIPSOID *Ellipsoid);
  28. double Intersect_Triangle(LINE *Line, TRIANGLE *Triangle);
  29. double Intersect_Box(LINE *Line, BOX *Box);
  30. double Intersect_Disc(LINE *Line, DISC *Disc);
  31. double Intersect_Cylinder(LINE *Line, CYLINDER *Cylinder);
  32.  
  33.  
  34. /* Prototypes for functions defined in objects.c */
  35. void GetSurfaceNormal(VECTOR *SurfNorm, POINT *SurfPoint, OBJECT *Object);
  36. void FreeAllObjectMemory(void);
  37. void ClearTransform(TRANSFORM *t);
  38. void CopyTransform(TRANSFORM *t2, TRANSFORM *t1);
  39. void AddTransform(TRANSFORM *t2, TRANSFORM *t1);
  40.  
  41.  
  42. /* Prototypes for functions defined in camera.c */
  43. void CreateCamera(CAMERA *Camera, POINT *Loc, POINT *VP, VECTOR *Asp);
  44.  
  45.  
  46. /* Prototypes for functions defined in texture.c */
  47. void CreateDefTexture(TEXTURE *t);
  48. void CopyTexture(TEXTURE *t2, TEXTURE *t1);
  49. void CopyColor(COLOR *c2, COLOR *c1);
  50. void GetSurfaceColor(COLOR *Color, TEXTURE *t, POINT *ip);
  51. double PatternChecker(POINT *ip);
  52. double PatternCircles(POINT *ip);
  53. double PatternRings(POINT *ip);
  54. double PatternSpots(POINT *ip);
  55. double PatternGradient(POINT *ip);
  56.  
  57.  
  58. /* Prototypes for functions defined in algebra.c */
  59. void CreateVector(VECTOR *v, double vx, double vy, double vz);
  60. void CopyVector(VECTOR *v2, VECTOR *v1);
  61. void AddVector(VECTOR *v3, VECTOR *v1, VECTOR *v2);
  62. void SubVector(VECTOR *v3, VECTOR *v1, VECTOR *v2);
  63. void NegVector(VECTOR *v2, VECTOR *v1);
  64. void CrossProduct(VECTOR *v3, VECTOR *v1, VECTOR *v2);
  65. double DotProduct(VECTOR *v1, VECTOR *v2);
  66. void ScaleVector(VECTOR *v2, double t, VECTOR *v1);
  67. double VectorLength(VECTOR *v);
  68. double VectorsAngle(VECTOR *v1, VECTOR *v2);
  69. void CreatePoint(POINT *p, double px, double py, double pz);
  70. void CopyPoint(POINT *p2, POINT *p1);
  71. void MakeLine(LINE *l, POINT *p1, POINT *p2);
  72. void ReflectVector(VECTOR *v2, VECTOR *v1, VECTOR *n);
  73. void Rotate2D(double *x, double *y, double ar);
  74. void RotatePoint(POINT *p, VECTOR *RotV);
  75. void RotateVector(VECTOR *v, VECTOR *RotV);
  76. void RevRotatePoint(POINT *p, VECTOR *RotV);
  77. void RevRotateVector(VECTOR *v, VECTOR *RotV);
  78.